/*
 * Copyright (C) Michael Martin & Antonio Carrozzini (TBJD)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

package org.tbjd.client.constants;

/**
 * <p>
 * Constants used by the whole application's notification system
 * </p>
 * 
 * @author Michael Martin
 * @author Antonio Carrozzini
 * @version 1.0
 * 
 */
public class NotificationsConstants {

	public static final int RESOURCEPICKERITEMS_DECORATED_old = 1000;
	public static final int GANTTITEMS_DECORATED_old = 1001;

	// *****************************************************************************//
	// ******************************* PROJECT ***************************************//
	// *****************************************************************************//
	/**
	 * List of all {@link org.tbjd.client.beans.Project projects}
	 */
	public static final int DECORATED_PROJECTS = 600;
	public static final int SEARCH_PROJECT_NAME_CRITERIA = 601;
	public static final int FETCH_PROJECTS = 602;
	public static final int OPEN_PROJECT = 603;
	public static final int SEARCH_FILLED = 604;
	public static final int SEARCH_EMPTY = 605;
	public static final int DROPED_PROJECTS = 606;
	public static final int STATUS_CHANGED = 607;
	public static final int STAR_CLICKED = 608;
	public static final int PRIORITY_CLICKED = 609;
	public static final int INFO_CLICKED = 610;
	public static final int DELETE_CLICKED = 611;
	public static final int DELETE_PROJECT = 612;
	public static final int TOGGLE_PRIORITY = 613;
	public static final int TOGGLE_STAR = 614;

	// *****************************************************************************//
	// ******************************* TASKS ***************************************//
	// *****************************************************************************//
	/**
	 * List of all {@link org.tbjd.client.beans.Task tasks} related to the opened Project
	 */
	public static final int TASKS = 100;

	/**
	 * When {@link org.tbjd.client.beans.Task tasks} are required
	 */
	public static final int FETCH_TASKS = 101;

	/**
	 * When a {@link org.tbjd.client.beans.Task task} is updated
	 */
	public static final int TASK_UPDATED = 102;

	/**
	 * When a {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem} progression has changed
	 */
	public static final int TASK_PROGRESS_DRAGGING = 104;

	/**
	 * When a {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem} duration has changed
	 */
	public static final int TASK_DURATION_DRAGGING = 105;

	/**
	 * When infos about a {@link org.tbjd.client.beans.Resource Resource} has changed
	 */
	public static final int TASK_RESOURCES_DRAGGING = 106;
	
	public static final int TASK_LEVEL = 107;

	public static final int TASK_ADDED = 108;
	
	public static final int TASK_DELETED = 109;
	
	public static final int TASK_TYPE_SWITCHED = 110;

	// *****************************************************************************//
	// ******************************* RESOURCES ***********************************//
	// *****************************************************************************//
	/**
	 * List of all {@link org.tbjd.client.beans.Resource Resources} related to the opened Project
	 */
	public static final int RESOURCES = 200;

	/**
	 * When {@link org.tbjd.client.beans.Resource Resources} are required
	 */
	public static final int FETCH_RESOURCES = 201;

	/**
	 * When the "add {@link org.tbjd.client.beans.Resource Resource}" button from the
	 * {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is clicked
	 */
	public static final int ADD_RESOURCE = 202;

	/**
	 * When the {@link org.tbjd.client.beans.Resource Resource} detail window is asked (i.e. double click on a
	 * {@link org.tbjd.client.guis.resourcePicker.items.ResourcePickerItem ResourcePickerItem} from the
	 * {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui}
	 */
	public static final int OPEN_RESOURCE = 203;

	// *****************************************************************************//
	// ****************************** DECORATORS ***********************************//
	// *****************************************************************************//
	/**
	 * {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItems} decorated by a {@link org.tbjd.client.interfaces.Decorator Decorator}
	 */
	public static final int GANTTITEMS_DECORATED = 300;

	/**
	 * {@link org.tbjd.client.guis.resourcePicker.items.ResourcePickerItem ResourcePickerItem} decorated by a {@link org.tbjd.client.interfaces.Decorator Decorator}
	 */
	public static final int RESOURCEPICKERITEMS_DECORATED = 301;

	// *****************************************************************************//
	// ***************************** MENUS EVENTS **********************************//
	// *****************************************************************************//
	/**
	 * When the "assign button" (the down arrow) from the {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is clicked
	 */
	public static final int ASSIGNRESOURCETOTASK_TASK = 401;
	/**
	 * The Resource involved when the "assign button" (the down arrow) from the
	 * {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is clicked
	 */
	public static final int ASSIGNRESOURCETOTASK_RESOURCE = 402;

	// *****************************************************************************//
	// ***************************** DRAG AND DROP *********************************//
	// *****************************************************************************//
	/**
	 * When a drag operation has started
	 */
	public static final int DRAGGING_START = 501;

	/**
	 * When a drag operation has stopped
	 */
	public static final int DRAGGING_STOP = 502;

	/**
	 * The offset the {@link org.tbjd.client.guis.gantt.items.AbstractGanttItem AbstractGanttItem} has moved in pixels
	 */
	public static final int DRAGGING_OFFSET = 503;

	/**
	 * While dragging a {@link org.tbjd.client.guis.gantt.items.AbstractGanttItem AbstractGanttItem}
	 */
	public static final int DRAGGING_DRAGGABLEGANTTITEM = 504;

	/**
	 * When a {@link org.tbjd.client.guis.gantt.items.AbstractGanttItem AbstractGanttItem} is over a border
	 * 
	 * @see org.tbjd.client.interfaces.BorderNotifier
	 */
	public static final int DRAGGING_GANTTITEM_ONBORDER = 505;

	/**
	 * While dragging a {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem} duration handler
	 */
	public static final int DRAGGING_DRABBAGLEGANTTITEM_DURATION = 506;

	/**
	 * The {@link org.tbjd.client.beans.Resource Resource} involved when a {@link org.tbjd.client.guis.resourcePicker.items.ResourcePickerItem ResourcePickerItem}
	 * from the {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is dropped on a
	 * {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem}
	 */
	public static final int DROP_ADD_RESOURCEONTASK_resource = 507;

	/**
	 * The {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem} involved when a
	 * {@link org.tbjd.client.guis.resourcePicker.items.ResourcePickerItem ResourcePickerItem} from the
	 * {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is dropped on a
	 * {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem}
	 */
	public static final int DROP_ADD_RESOURCEONTASK_ganttTaskItem = 508;

	/**
	 * The {@link org.tbjd.client.beans.Task Task} involved when a {@link org.tbjd.client.guis.resourcePicker.items.ResourcePickerItem ResourcePickerItem} from the
	 * {@link org.tbjd.client.guis.resourcePicker.ResourcePickerGui ResourcePickerGui} is dropped on a
	 * {@link org.tbjd.client.guis.gantt.items.GanttTaskItem GanttTaskItem}
	 */
	public static final int DROP_ADD_RESOURCEONTASK_task = 509;

	/**
	 * 
	 */
	public static final int DROP_REMOVE_RESOURCEFROMTASK_resource = 510;
	public static final int DROP_REMOVE_RESOURCEFROMTASK_task = 511;
	public static final int DROP_REMOVE_RESOURCEFROMTASK_taskId = 512;

	// *****************************************************************************//
	// ******************************** HELPERS ************************************//
	// *****************************************************************************//
	public static final int DATEMANAGER_SENDER = 800;
	public static final int DATEMANAGER_BEAN = 801;
	public static final int DATEMANAGER_ACTION_beginDate = 802;
	public static final int DATEMANAGER_ACTION_endDate = 803;
	public static final int DATEMANAGER_ACTION_duration = 804;
	public static final int DATEMANAGER_ACTION_effort = 805;
	public static final int DATEMANAGER_ACTION_resource = 806;
	public static final int TASKMANAGER_ACTION_add = 807;
	public static final int TASKMANAGER_RESULT = 808;
	public static final int DATEMANAGER_ACTION_progress = 809;
	public static final int TASKMANAGER_ACTION_delete = 810;
	public static final int TASKMANAGER_RESULT_rowsToRemove = 811;
	public static final int TASKMANAGER_ACTION_typeSwitched = 812;
	public static final int TASKMANAGER_ACTION_treeGridItem_moved = 813;
	public static final Integer TASKMANAGER_ACTION_treeGridItemMoved_origin = 814;
	public static final Integer TASKMANAGER_ACTION_treeGridItemMoved_target = 815;

	
	// *****************************************************************************//
	// ******************************** TREEGRID ************************************//
	// *****************************************************************************//
	public static final int DECORATED_TASKS = 701;
	
	//TODO to erase
	public static final int TREEGRIDITEM_MOVED_ORIGIN_POSITION = 704;
	public static final int TREEGRIDITEM_MOVED_TARGET_POSITION = 705;
	
	
	public static final int DRAGGING_TREEGRIDITEM_SOURCE = 713;
	public static final int DRAGGING_TREEGRIDITEM_TARGET = 714;
	public static final Integer TREEGRIDITEM_SELECTED = 715;
	public static final int TASKLIST_COLLAPSE = 716;
	public static final int TREEGRIDITEM_DESELECTED = 717;
	
	


}
